{
  "nbformat": 4,
  "nbformat_minor": 0,
  "metadata": {
    "colab": {
      "provenance": []
    },
    "kernelspec": {
      "name": "python3",
      "display_name": "Python 3"
    },
    "language_info": {
      "name": "python"
    }
  },
  "cells": [
    {
      "cell_type": "code",
      "execution_count": null,
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/"
        },
        "id": "QpUVY-F-E1Kp",
        "outputId": "fc173a78-fdb9-4bc8-d2ef-58d6ce653d0c"
      },
      "outputs": [
        {
          "output_type": "stream",
          "name": "stdout",
          "text": [
            "Collecting wfdb\n",
            "  Downloading wfdb-4.3.0-py3-none-any.whl.metadata (3.8 kB)\n",
            "Collecting neurokit2\n",
            "  Downloading neurokit2-0.2.10-py2.py3-none-any.whl.metadata (37 kB)\n",
            "Requirement already satisfied: scikit-learn in /usr/local/lib/python3.11/dist-packages (1.6.1)\n",
            "Requirement already satisfied: matplotlib in /usr/local/lib/python3.11/dist-packages (3.10.0)\n",
            "Requirement already satisfied: seaborn in /usr/local/lib/python3.11/dist-packages (0.13.2)\n",
            "Requirement already satisfied: aiohttp>=3.10.11 in /usr/local/lib/python3.11/dist-packages (from wfdb) (3.11.15)\n",
            "Requirement already satisfied: fsspec>=2023.10.0 in /usr/local/lib/python3.11/dist-packages (from wfdb) (2025.3.2)\n",
            "Requirement already satisfied: numpy>=1.26.4 in /usr/local/lib/python3.11/dist-packages (from wfdb) (2.0.2)\n",
            "Collecting pandas>=2.2.3 (from wfdb)\n",
            "  Downloading pandas-2.2.3-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.metadata (89 kB)\n",
            "\u001b[2K     \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m89.9/89.9 kB\u001b[0m \u001b[31m2.9 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n",
            "\u001b[?25hRequirement already satisfied: requests>=2.8.1 in /usr/local/lib/python3.11/dist-packages (from wfdb) (2.32.3)\n",
            "Requirement already satisfied: scipy>=1.13.0 in /usr/local/lib/python3.11/dist-packages (from wfdb) (1.14.1)\n",
            "Requirement already satisfied: soundfile>=0.10.0 in /usr/local/lib/python3.11/dist-packages (from wfdb) (0.13.1)\n",
            "Requirement already satisfied: joblib>=1.2.0 in /usr/local/lib/python3.11/dist-packages (from scikit-learn) (1.4.2)\n",
            "Requirement already satisfied: threadpoolctl>=3.1.0 in /usr/local/lib/python3.11/dist-packages (from scikit-learn) (3.6.0)\n",
            "Requirement already satisfied: contourpy>=1.0.1 in /usr/local/lib/python3.11/dist-packages (from matplotlib) (1.3.1)\n",
            "Requirement already satisfied: cycler>=0.10 in /usr/local/lib/python3.11/dist-packages (from matplotlib) (0.12.1)\n",
            "Requirement already satisfied: fonttools>=4.22.0 in /usr/local/lib/python3.11/dist-packages (from matplotlib) (4.57.0)\n",
            "Requirement already satisfied: kiwisolver>=1.3.1 in /usr/local/lib/python3.11/dist-packages (from matplotlib) (1.4.8)\n",
            "Requirement already satisfied: packaging>=20.0 in /usr/local/lib/python3.11/dist-packages (from matplotlib) (24.2)\n",
            "Requirement already satisfied: pillow>=8 in /usr/local/lib/python3.11/dist-packages (from matplotlib) (11.1.0)\n",
            "Requirement already satisfied: pyparsing>=2.3.1 in /usr/local/lib/python3.11/dist-packages (from matplotlib) (3.2.3)\n",
            "Requirement already satisfied: python-dateutil>=2.7 in /usr/local/lib/python3.11/dist-packages (from matplotlib) (2.8.2)\n",
            "Requirement already satisfied: aiohappyeyeballs>=2.3.0 in /usr/local/lib/python3.11/dist-packages (from aiohttp>=3.10.11->wfdb) (2.6.1)\n",
            "Requirement already satisfied: aiosignal>=1.1.2 in /usr/local/lib/python3.11/dist-packages (from aiohttp>=3.10.11->wfdb) (1.3.2)\n",
            "Requirement already satisfied: attrs>=17.3.0 in /usr/local/lib/python3.11/dist-packages (from aiohttp>=3.10.11->wfdb) (25.3.0)\n",
            "Requirement already satisfied: frozenlist>=1.1.1 in /usr/local/lib/python3.11/dist-packages (from aiohttp>=3.10.11->wfdb) (1.5.0)\n",
            "Requirement already satisfied: multidict<7.0,>=4.5 in /usr/local/lib/python3.11/dist-packages (from aiohttp>=3.10.11->wfdb) (6.3.2)\n",
            "Requirement already satisfied: propcache>=0.2.0 in /usr/local/lib/python3.11/dist-packages (from aiohttp>=3.10.11->wfdb) (0.3.1)\n",
            "Requirement already satisfied: yarl<2.0,>=1.17.0 in /usr/local/lib/python3.11/dist-packages (from aiohttp>=3.10.11->wfdb) (1.18.3)\n",
            "Requirement already satisfied: pytz>=2020.1 in /usr/local/lib/python3.11/dist-packages (from pandas>=2.2.3->wfdb) (2025.2)\n",
            "Requirement already satisfied: tzdata>=2022.7 in /usr/local/lib/python3.11/dist-packages (from pandas>=2.2.3->wfdb) (2025.2)\n",
            "Requirement already satisfied: six>=1.5 in /usr/local/lib/python3.11/dist-packages (from python-dateutil>=2.7->matplotlib) (1.17.0)\n",
            "Requirement already satisfied: charset-normalizer<4,>=2 in /usr/local/lib/python3.11/dist-packages (from requests>=2.8.1->wfdb) (3.4.1)\n",
            "Requirement already satisfied: idna<4,>=2.5 in /usr/local/lib/python3.11/dist-packages (from requests>=2.8.1->wfdb) (3.10)\n",
            "Requirement already satisfied: urllib3<3,>=1.21.1 in /usr/local/lib/python3.11/dist-packages (from requests>=2.8.1->wfdb) (2.3.0)\n",
            "Requirement already satisfied: certifi>=2017.4.17 in /usr/local/lib/python3.11/dist-packages (from requests>=2.8.1->wfdb) (2025.1.31)\n",
            "Requirement already satisfied: cffi>=1.0 in /usr/local/lib/python3.11/dist-packages (from soundfile>=0.10.0->wfdb) (1.17.1)\n",
            "Requirement already satisfied: pycparser in /usr/local/lib/python3.11/dist-packages (from cffi>=1.0->soundfile>=0.10.0->wfdb) (2.22)\n",
            "Downloading wfdb-4.3.0-py3-none-any.whl (163 kB)\n",
            "\u001b[2K   \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m163.8/163.8 kB\u001b[0m \u001b[31m2.4 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n",
            "\u001b[?25hDownloading neurokit2-0.2.10-py2.py3-none-any.whl (693 kB)\n",
            "\u001b[2K   \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m693.1/693.1 kB\u001b[0m \u001b[31m18.6 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n",
            "\u001b[?25hDownloading pandas-2.2.3-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (13.1 MB)\n",
            "\u001b[2K   \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m13.1/13.1 MB\u001b[0m \u001b[31m30.5 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n",
            "\u001b[?25hInstalling collected packages: pandas, wfdb, neurokit2\n",
            "  Attempting uninstall: pandas\n",
            "    Found existing installation: pandas 2.2.2\n",
            "    Uninstalling pandas-2.2.2:\n",
            "      Successfully uninstalled pandas-2.2.2\n",
            "\u001b[31mERROR: pip's dependency resolver does not currently take into account all the packages that are installed. This behaviour is the source of the following dependency conflicts.\n",
            "google-colab 1.0.0 requires pandas==2.2.2, but you have pandas 2.2.3 which is incompatible.\u001b[0m\u001b[31m\n",
            "\u001b[0mSuccessfully installed neurokit2-0.2.10 pandas-2.2.3 wfdb-4.3.0\n"
          ]
        }
      ],
      "source": [
        "!pip install wfdb neurokit2 scikit-learn matplotlib seaborn\n"
      ]
    },
    {
      "cell_type": "code",
      "source": [
        "import wfdb\n",
        "\n",
        "# Step 1: Download record '100' from MIT-BIH to local Colab storage\n",
        "wfdb.dl_database('mitdb', dl_dir='mitdb', records=['100'])\n",
        "\n",
        "# Step 2: Load the record and annotations from the downloaded folder\n",
        "record = wfdb.rdrecord('mitdb/100')\n",
        "annotation = wfdb.rdann('mitdb/100', 'atr')\n",
        "\n",
        "# Step 3: Plot to confirm\n",
        "wfdb.plot_wfdb(record=record, annotation=annotation, title='ECG Record 100')\n"
      ],
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/",
          "height": 561
        },
        "id": "upVGuPnhFj_i",
        "outputId": "f3a3f9d8-53c5-401b-9708-9c97e71be2d8"
      },
      "execution_count": null,
      "outputs": [
        {
          "output_type": "stream",
          "name": "stdout",
          "text": [
            "Generating record list for: 100\n",
            "Generating list of all files for: 100\n",
            "Created local base download directory: mitdb\n",
            "Downloading files...\n",
            "Finished downloading files\n"
          ]
        },
        {
          "output_type": "display_data",
          "data": {
            "text/plain": [
              "<Figure size 640x480 with 2 Axes>"
            ],
            "image/png": "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ZoFBDRERkR4kpk4AFYhBDRERkR7Yi7P0Y1BDREREZoFBDREREZkFBjVERERkFhjUEBERkVlgUENERERmgUENERERmQUGNURERGQWGNQQERHpge8bLP0Y1BAREZFZYFBDREREZoFBDREREZkFBjVERER6qh97E7//8T/gzBlTJ4W0YFBDRESkp76X96HV3QvAmjWmTgppYWXqBBAREZVqd+4Ajx6h2r0b6HX1kHzaunXA8OGAEICHB1C5smnTSAAY1BAREeUvMBAAsBiATDEtIQFo0uTFMnzcu1Rg8xMREVF+1q4FrOR1AMpCUxHEWFnJ51OpwJoaIiKi/AwZAtSurV4zo3DyJNC4ccmnibRiTQ0REZG+LCzU/6VShWeFiIioIBUrAt7e8tqaZcvk/3p7y6dTqcHmJyIiooL4+QHR0YCNDSCRAG++CWRmAlKpqVNGKhjUEBER6UM1gJFIGNCUQmx+IiIiIrNQrmpqFK+NT05ONnFKiIiISF+KclsUMB5QuQpqUlJSAAD+/v4mTgkREREZKiUlBS4uLjrnS0RBYY8ZkclkiImJgZOTEyQSidG2m5ycDH9/f9y7dw/Ozs5G225ZUF7zXl7zDZTfvDPf5SvfQPnNe2nMtxACKSkp8PX1hUU+j9OXq5oaCwsL+Pn5Fdv2nZ2dS80XoKSV17yX13wD5TfvzHf5U17zXtrynV8NjQI7ChMREZFZYFBDREREZoFBjRFIpVLMnDkT0nI4ZkF5zXt5zTdQfvPOfJevfAPlN+9lOd/lqqMwERERmS/W1BAREZFZYFBDREREZoFBDREREZkFBjVERERkFhjUEBERkVlgUENERERmgUENERERmQUGNURERGQWGNQQERGRWWBQQ0RERGaBQQ0RERGZBQY1REREZBYY1BAREZFZYFBDREREZoFBDREREZkFBjVERERkFhjUEBERkVlgUENERERmgUENERERmQUGNURERGQWGNQQERGRWWBQQ0RERGaBQQ0RERGZBQY1REREZBYY1BAREZFZYFBDREREZsHK1AkoSTKZDDExMXBycoJEIjF1coiIiEgPQgikpKTA19cXFha662PKVVATExMDf39/UyeDiIiICuHevXvw8/PTOb9cBTVOTk4A5AfF2dnZxKkhIiIifSQnJ8Pf319ZjutSroIaRZOTs7MzgxoiIqIypqCuI+woTERE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Q++VflamToA+rl27BplMhuXLl6NatWq4dOkSxo4di7S0NCxYsMDUySMiIqJSoEwENaGhoQgNDVX+HRQUhOvXr2Pp0qUMaoiIiAhAGQlqtElKSoK7u3u+y2RkZCAjI0P5d3JycnEni4iIiEykTPSpySsyMhI//PAD3nrrrXyXmzt3LlxcXJQff3//EkohERERlTSTBjVTp06FRCLJ93Pt2jW1dR48eIDQ0FD0798fY8eOzXf706ZNQ1JSkvJz79694swOERGZMb6ku/QzafPTxIkTMWLEiHyXCQoKUv4/JiYGHTp0QKtWrfDTTz8VuH2pVAqpVFrUZBIREVEZYNKgxtPTE56ennot++DBA3To0AFNmjTBypUrYWFRJlvOiIiIqJiUiY7CDx48QEhICCpXrowFCxYgISFBOc/b29uEKSMiIqLSokwENbt370ZkZCQiIyPh5+enNk8IYaJUERERUWlSJtpwRowYASGE1g8REVFJkHBM4VKvTAQ1RERERAVhUENERERmgUENERERmQUGNURERHrg4HulH4MaIiIiMgsMaoiIiMgsMKghIiIis8CghoiIiMwCgxoiIiIyCwxqiIiIyCwwqCEiIiKzwKCGiIiIzAKDGiIiIj182rMOAGBc+6omTgnpYmXqBBAREZUFrat54MqcrrC3YdFZWrGmhoiISE8MaEo3BjVERERkFhjUEBERkVlgUENERERmgUENERERmYVy1eNJCAEASE5ONnFKiIiISF+KcltRjutSroKalJQUAIC/v7+JU0JERESGSklJgYuLi875ElFQ2GNGZDIZYmJi4OTkBIlEYrTtJicnw9/fH/fu3YOzs7PRtlsWlNe8l9d8A+U378x3+co3UH7zXhrzLYRASkoKfH19YWGhu+dMuaqpsbCwgJ+fX7Ft39nZudR8AUpaec17ec03UH7zznyXP+U176Ut3/nV0CiwozARERGZBQY1REREZBYY1BiBVCrFzJkzIZVKTZ2UElde815e8w2U37wz3+Ur30D5zXtZzne56ihMRERE5os1NURERGQWGNQQERGRWWBQQ0RERGaBQQ0RERGZBQY1RrBkyRIEBgbC1tYWLVq0wKlTp0ydpCKZO3cumjVrBicnJ1SsWBF9+vTB9evX1ZYJCQmBRCJR+4wbN05tmbt376JHjx6wt7dHxYoVMXnyZGRnZ5dkVgwy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\n"
          },
          "metadata": {}
        }
      ]
    },
    {
      "cell_type": "code",
      "source": [
        "import numpy as np\n",
        "from scipy.signal import butter, filtfilt\n",
        "\n",
        "# Step 1: Extract the ECG signal (lead 1)\n",
        "ecg_signal = record.p_signal[:, 0]\n",
        "\n",
        "# Step 2: Bandpass filter (0.5 – 45 Hz)\n",
        "def bandpass_filter(signal, lowcut=0.5, highcut=45.0, fs=360, order=2):\n",
        "    nyq = 0.5 * fs\n",
        "    low = lowcut / nyq\n",
        "    high = highcut / nyq\n",
        "    b, a = butter(order, [low, high], btype='band')\n",
        "    return filtfilt(b, a, signal)\n",
        "\n",
        "filtered_ecg = bandpass_filter(ecg_signal)\n",
        "\n",
        "# Step 3: Normalize\n",
        "def normalize(signal):\n",
        "    return (signal - np.mean(signal)) / np.std(signal)\n",
        "\n",
        "normalized_ecg = normalize(filtered_ecg)\n"
      ],
      "metadata": {
        "id": "S2WrlrCtF2Ov"
      },
      "execution_count": null,
      "outputs": []
    },
    {
      "cell_type": "code",
      "source": [
        "import neurokit2 as nk\n",
        "\n",
        "# Step 1: Process ECG with neurokit2\n",
        "signals, info = nk.ecg_process(normalized_ecg, sampling_rate=360)\n",
        "\n",
        "# Step 2: Extract interval-related features\n",
        "features = nk.ecg_intervalrelated(signals)\n",
        "features.head()\n"
      ],
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/",
          "height": 130
        },
        "id": "EzUjb2hTF9sA",
        "outputId": "4bda18e1-c7a3-4755-f7b4-5d00189f326a"
      },
      "execution_count": null,
      "outputs": [
        {
          "output_type": "execute_result",
          "data": {
            "text/plain": [
              "  ECG_Rate_Mean              HRV_MeanNN                HRV_SDNN  \\\n",
              "0     75.523892  [[286.06299559471364]]  [[13.575539789537926]]   \n",
              "\n",
              "              HRV_SDANN1              HRV_SDNNI1             HRV_SDANN2  \\\n",
              "0  [[6.345291267570103]]  [[11.977767589360822]]  [[5.476710620222688]]   \n",
              "\n",
              "               HRV_SDNNI2 HRV_SDANN5 HRV_SDNNI5               HRV_RMSSD  ...  \\\n",
              "0  [[12.331177679550024]]    [[nan]]    [[nan]]  [[11.546502831304318]]  ...   \n",
              "\n",
              "               HRV_SampEn              HRV_ShanEn             HRV_FuzzyEn  \\\n",
              "0  [[1.8428632935423488]]  [[5.7531236281893845]]  [[1.2769485174569633]]   \n",
              "\n",
              "                HRV_MSEn               HRV_CMSEn             HRV_RCMSEn  \\\n",
              "0  [[1.005296338562641]]  [[1.3772333096023532]]  [[2.176223043173414]]   \n",
              "\n",
              "                   HRV_CD                 HRV_HFD                HRV_KFD  \\\n",
              "0  [[1.7450820355967216]]  [[1.9651844018468048]]  [[4.055257503512329]]   \n",
              "\n",
              "                  HRV_LZC  \n",
              "0  [[0.7612395904130542]]  \n",
              "\n",
              "[1 rows x 92 columns]"
            ],
            "text/html": [
              "\n",
              "  <div id=\"df-650e38a9-a672-425e-83a5-c01dd1a4cd13\" class=\"colab-df-container\">\n",
              "    <div>\n",
              "<style scoped>\n",
              "    .dataframe tbody tr th:only-of-type {\n",
              "        vertical-align: middle;\n",
              "    }\n",
              "\n",
              "    .dataframe tbody tr th {\n",
              "        vertical-align: top;\n",
              "    }\n",
              "\n",
              "    .dataframe thead th {\n",
              "        text-align: right;\n",
              "    }\n",
              "</style>\n",
              "<table border=\"1\" class=\"dataframe\">\n",
              "  <thead>\n",
              "    <tr style=\"text-align: right;\">\n",
              "      <th></th>\n",
              "      <th>ECG_Rate_Mean</th>\n",
              "      <th>HRV_MeanNN</th>\n",
              "      <th>HRV_SDNN</th>\n",
              "      <th>HRV_SDANN1</th>\n",
              "      <th>HRV_SDNNI1</th>\n",
              "      <th>HRV_SDANN2</th>\n",
              "      <th>HRV_SDNNI2</th>\n",
              "      <th>HRV_SDANN5</th>\n",
              "      <th>HRV_SDNNI5</th>\n",
              "      <th>HRV_RMSSD</th>\n",
              "      <th>...</th>\n",
              "      <th>HRV_SampEn</th>\n",
              "      <th>HRV_ShanEn</th>\n",
              "      <th>HRV_FuzzyEn</th>\n",
              "      <th>HRV_MSEn</th>\n",
              "      <th>HRV_CMSEn</th>\n",
              "      <th>HRV_RCMSEn</th>\n",
              "      <th>HRV_CD</th>\n",
              "      <th>HRV_HFD</th>\n",
              "      <th>HRV_KFD</th>\n",
              "      <th>HRV_LZC</th>\n",
              "    </tr>\n",
              "  </thead>\n",
              "  <tbody>\n",
              "    <tr>\n",
              "      <th>0</th>\n",
              "      <td>75.523892</td>\n",
              "      <td>[[286.06299559471364]]</td>\n",
              "      <td>[[13.575539789537926]]</td>\n",
              "      <td>[[6.345291267570103]]</td>\n",
              "      <td>[[11.977767589360822]]</td>\n",
              "      <td>[[5.476710620222688]]</td>\n",
              "      <td>[[12.331177679550024]]</td>\n",
              "      <td>[[nan]]</td>\n",
              "      <td>[[nan]]</td>\n",
              "      <td>[[11.546502831304318]]</td>\n",
              "      <td>...</td>\n",
              "      <td>[[1.8428632935423488]]</td>\n",
              "      <td>[[5.7531236281893845]]</td>\n",
              "      <td>[[1.2769485174569633]]</td>\n",
              "      <td>[[1.005296338562641]]</td>\n",
              "      <td>[[1.3772333096023532]]</td>\n",
              "      <td>[[2.176223043173414]]</td>\n",
              "      <td>[[1.7450820355967216]]</td>\n",
              "      <td>[[1.9651844018468048]]</td>\n",
              "      <td>[[4.055257503512329]]</td>\n",
              "      <td>[[0.7612395904130542]]</td>\n",
              "    </tr>\n",
              "  </tbody>\n",
              "</table>\n",
              "<p>1 rows × 92 columns</p>\n",
              "</div>\n",
              "    <div class=\"colab-df-buttons\">\n",
              "\n",
              "  <div class=\"colab-df-container\">\n",
              "    <button class=\"colab-df-convert\" onclick=\"convertToInteractive('df-650e38a9-a672-425e-83a5-c01dd1a4cd13')\"\n",
              "            title=\"Convert this dataframe to an interactive table.\"\n",
              "            style=\"display:none;\">\n",
              "\n",
              "  <svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24px\" viewBox=\"0 -960 960 960\">\n",
              "    <path d=\"M120-120v-720h720v720H120Zm60-500h600v-160H180v160Zm220 220h160v-160H400v160Zm0 220h160v-160H400v160ZM180-400h160v-160H180v160Zm440 0h160v-160H620v160ZM180-180h160v-160H180v160Zm440 0h160v-160H620v160Z\"/>\n",
              "  </svg>\n",
              "    </button>\n",
              "\n",
              "  <style>\n",
              "    .colab-df-container {\n",
              "      display:flex;\n",
              "      gap: 12px;\n",
              "    }\n",
              "\n",
              "    .colab-df-convert {\n",
              "      background-color: #E8F0FE;\n",
              "      border: none;\n",
              "      border-radius: 50%;\n",
              "      cursor: pointer;\n",
              "      display: none;\n",
              "      fill: #1967D2;\n",
              "      height: 32px;\n",
              "      padding: 0 0 0 0;\n",
              "      width: 32px;\n",
              "    }\n",
              "\n",
              "    .colab-df-convert:hover {\n",
              "      background-color: #E2EBFA;\n",
              "      box-shadow: 0px 1px 2px rgba(60, 64, 67, 0.3), 0px 1px 3px 1px rgba(60, 64, 67, 0.15);\n",
              "      fill: #174EA6;\n",
              "    }\n",
              "\n",
              "    .colab-df-buttons div {\n",
              "      margin-bottom: 4px;\n",
              "    }\n",
              "\n",
              "    [theme=dark] .colab-df-convert {\n",
              "      background-color: #3B4455;\n",
              "      fill: #D2E3FC;\n",
              "    }\n",
              "\n",
              "    [theme=dark] .colab-df-convert:hover {\n",
              "      background-color: #434B5C;\n",
              "      box-shadow: 0px 1px 3px 1px rgba(0, 0, 0, 0.15);\n",
              "      filter: drop-shadow(0px 1px 2px rgba(0, 0, 0, 0.3));\n",
              "      fill: #FFFFFF;\n",
              "    }\n",
              "  </style>\n",
              "\n",
              "    <script>\n",
              "      const buttonEl =\n",
              "        document.querySelector('#df-650e38a9-a672-425e-83a5-c01dd1a4cd13 button.colab-df-convert');\n",
              "      buttonEl.style.display =\n",
              "        google.colab.kernel.accessAllowed ? 'block' : 'none';\n",
              "\n",
              "      async function convertToInteractive(key) {\n",
              "        const element = document.querySelector('#df-650e38a9-a672-425e-83a5-c01dd1a4cd13');\n",
              "        const dataTable =\n",
              "          await google.colab.kernel.invokeFunction('convertToInteractive',\n",
              "                                                    [key], {});\n",
              "        if (!dataTable) return;\n",
              "\n",
              "        const docLinkHtml = 'Like what you see? Visit the ' +\n",
              "          '<a target=\"_blank\" href=https://colab.research.google.com/notebooks/data_table.ipynb>data table notebook</a>'\n",
              "          + ' to learn more about interactive tables.';\n",
              "        element.innerHTML = '';\n",
              "        dataTable['output_type'] = 'display_data';\n",
              "        await google.colab.output.renderOutput(dataTable, element);\n",
              "        const docLink = document.createElement('div');\n",
              "        docLink.innerHTML = docLinkHtml;\n",
              "        element.appendChild(docLink);\n",
              "      }\n",
              "    </script>\n",
              "  </div>\n",
              "\n",
              "\n",
              "    </div>\n",
              "  </div>\n"
            ],
            "application/vnd.google.colaboratory.intrinsic+json": {
              "type": "dataframe",
              "variable_name": "features"
            }
          },
          "metadata": {},
          "execution_count": 6
        }
      ]
    },
    {
      "cell_type": "code",
      "source": [
        "# Step 1: Use annotation.symbol to label each beat as normal or arrhythmia\n",
        "normal_classes = ['N', 'L', 'R']\n",
        "abnormal_classes = ['V', 'A', 'E', 'F']\n",
        "\n",
        "labels = []\n",
        "r_peaks = info['ECG_R_Peaks']  # Correct R-peak indices from NeuroKit\n",
        "\n",
        "for idx in r_peaks:\n",
        "    # Find the nearest annotation\n",
        "    nearest = np.argmin(np.abs(annotation.sample - idx))\n",
        "    sym = annotation.symbol[nearest]\n",
        "\n",
        "    if sym in normal_classes:\n",
        "        labels.append(0)  # Normal\n",
        "    elif sym in abnormal_classes:\n",
        "        labels.append(1)  # Arrhythmia\n",
        "    else:\n",
        "        labels.append(None)  # Skip others\n"
      ],
      "metadata": {
        "id": "YSvGPpM8GTnZ"
      },
      "execution_count": null,
      "outputs": []
    },
    {
      "cell_type": "code",
      "source": [
        "# Step 1: Get R-peak indices detected by NeuroKit\n",
        "r_peaks = info['ECG_R_Peaks']\n",
        "\n",
        "# Step 2: ECG features per beat (already done)\n",
        "# features = nk.ecg_intervalrelated(signals)\n",
        "\n",
        "# Step 3: Match features to labels (length must match number of rows in `features`)\n",
        "# We assume each row in `features` corresponds to one R-peak\n",
        "\n",
        "labels = []\n",
        "\n",
        "# For each R-peak that made it into features\n",
        "for idx in r_peaks[:len(features)]:\n",
        "    # Find the closest annotation to this R-peak\n",
        "    nearest = np.argmin(np.abs(annotation.sample - idx))\n",
        "    sym = annotation.symbol[nearest]\n",
        "\n",
        "    if sym in ['N', 'L', 'R']:       # Normal beats\n",
        "        labels.append(0)\n",
        "    elif sym in ['V', 'A', 'E', 'F']:  # Arrhythmias\n",
        "        labels.append(1)\n",
        "    else:\n",
        "        labels.append(None)\n",
        "\n",
        "# Step 4: Keep only features with valid labels\n",
        "valid_indices = [i for i, l in enumerate(labels) if l is not None]\n",
        "X = features.iloc[valid_indices].values\n",
        "y = np.array([labels[i] for i in valid_indices])\n"
      ],
      "metadata": {
        "id": "OypW71FqG1m5"
      },
      "execution_count": null,
      "outputs": []
    },
    {
      "cell_type": "code",
      "source": [
        "# Check the feature matrix and labels\n",
        "print(\"Total number of extracted features:\", len(features))\n",
        "print(\"Total number of valid labels:\", len([l for l in labels if l is not None]))\n"
      ],
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/"
        },
        "id": "_8b-OnOlILg8",
        "outputId": "f254f87e-bb18-44c0-8b35-29e5558c0f85"
      },
      "execution_count": null,
      "outputs": [
        {
          "output_type": "stream",
          "name": "stdout",
          "text": [
            "Total number of extracted features: 1\n",
            "Total number of valid labels: 1\n"
          ]
        }
      ]
    },
    {
      "cell_type": "code",
      "source": [
        "# Create a list of labels (0: normal, 1: arrhythmia)\n",
        "labels = []\n",
        "\n",
        "for idx in r_peaks[:len(features)]:  # Ensure we only consider as many R-peaks as there are features\n",
        "    nearest = np.argmin(np.abs(annotation.sample - idx))\n",
        "    sym = annotation.symbol[nearest]\n",
        "\n",
        "    # Assign label: 0 for normal, 1 for arrhythmia\n",
        "    if sym in ['N', 'L', 'R']:  # Normal beats\n",
        "        labels.append(0)\n",
        "    elif sym in ['V', 'A', 'E', 'F']:  # Arrhythmias\n",
        "        labels.append(1)\n",
        "    else:\n",
        "        labels.append(None)  # Skip other types\n",
        "\n",
        "# Make sure we only keep valid labels\n",
        "valid_indices = [i for i, l in enumerate(labels) if l is not None]\n",
        "X_valid = features.iloc[valid_indices].values\n",
        "y_valid = np.array([labels[i] for i in valid_indices])\n",
        "\n",
        "# Debug output to confirm the sizes\n",
        "print(\"Valid samples - X:\", X_valid.shape)\n",
        "print(\"Valid samples - y:\", y_valid.shape)\n"
      ],
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/"
        },
        "id": "4wwIOc6QINKK",
        "outputId": "8424cb03-b5c7-42d6-99e3-21fb568a8278"
      },
      "execution_count": null,
      "outputs": [
        {
          "output_type": "stream",
          "name": "stdout",
          "text": [
            "Valid samples - X: (1, 92)\n",
            "Valid samples - y: (1,)\n"
          ]
        }
      ]
    },
    {
      "cell_type": "code",
      "source": [
        "print(\"Shape of X_valid:\", X_valid.shape)\n",
        "print(\"Shape of y_valid:\", len(y_valid))\n"
      ],
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/"
        },
        "id": "_wSZsytDIeja",
        "outputId": "3d0e54e8-0b43-4c98-98ed-392a3e1c9204"
      },
      "execution_count": null,
      "outputs": [
        {
          "output_type": "stream",
          "name": "stdout",
          "text": [
            "Shape of X_valid: (1, 92)\n",
            "Shape of y_valid: 1\n"
          ]
        }
      ]
    },
    {
      "cell_type": "code",
      "source": [
        "# Check if we have valid feature and label data\n",
        "valid_indices = [i for i, l in enumerate(labels) if l is not None]\n",
        "X_valid = features.iloc[valid_indices].values\n",
        "y_valid = np.array([labels[i] for i in valid_indices])\n",
        "\n",
        "# Debug prints to check how many valid data points we have\n",
        "print(f\"Total number of valid features (X_valid): {X_valid.shape[0]}\")\n",
        "print(f\"Total number of valid labels (y_valid): {len(y_valid)}\")\n",
        "\n",
        "# Check the first few feature values (Optional for better understanding)\n",
        "print(\"Sample features:\", X_valid[:5])\n"
      ],
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/"
        },
        "id": "qVY1KfPTIwss",
        "outputId": "07a156d0-6018-411e-bd50-d32e0289beb5"
      },
      "execution_count": null,
      "outputs": [
        {
          "output_type": "stream",
          "name": "stdout",
          "text": [
            "Total number of valid features (X_valid): 1\n",
            "Total number of valid labels (y_valid): 1\n",
            "Sample features: [[np.float64(75.52389171024667) array([[286.06299559]])\n",
            "  array([[13.57553979]]) array([[6.34529127]]) array([[11.97776759]])\n",
            "  array([[5.47671062]]) array([[12.33117768]]) array([[nan]])\n",
            "  array([[nan]]) array([[11.54650283]]) array([[11.54903252]])\n",
            "  array([[0.04745647]]) array([[0.0403635]]) array([[287.]])\n",
            "  array([[13.3434]]) array([[0.04649268]]) array([[18.]])\n",
            "  array([[1.1757274]]) array([[276.]]) array([[298.]])\n",
            "  array([[0.4845815]]) array([[6.12334802]]) array([[235.]])\n",
            "  array([[335.]]) array([[4.14990859]]) array([[0.]]) array([[nan]])\n",
            "  array([[0.00194464]]) array([[0.00235767]]) array([[0.00062574]])\n",
            "  array([[0.00525309]]) array([[0.01018114]]) array([[3.76781393]])\n",
            "  array([[0.2315721]]) array([[0.0614606]]) array([[-7.37657707]])\n",
            "  array([[8.16639921]]) array([[17.36207116]]) array([[0.47035858]])\n",
            "  array([[445.43261269]]) array([[2.12603752]]) array([[3.35575212]])\n",
            "  array([[147.64965916]]) array([[0.52334802]]) array([[0.49976798]])\n",
            "  array([[0.70009285]]) array([[0.10327869]]) array([[49.88824783]])\n",
            "  array([[49.87353781]]) array([[49.90300278]]) array([[48.95591647]])\n",
            "  array([[0.52948196]]) array([[0.47051804]]) array([[5.94233014]])\n",
            "  array([[5.60169334]]) array([[0.52204596]]) array([[0.47795404]])\n",
            "  array([[12.54457348]]) array([[12.00313256]]) array([[0.52339305]])\n",
            "  array([[0.47660695]]) array([[9.81523335]]) array([[9.36627352]])\n",
            "  array([[0.88673166]]) array([[3.11696925]]) array([[1.25516738]])\n",
            "  array([[1.82105451]]) array([[-2.73176258]]) array([[-2.12583137]])\n",
            "  array([[-0.31844956]]) array([[0.00176282]]) array([[0.51855125]])\n",
            "  array([[0.8533175]]) array([[0.33169601]]) array([[0.55484076]])\n",
            "  array([[0.72068877]]) array([[1.06643855]]) array([[-0.26999745]])\n",
            "  array([[0.]]) array([[5.8471939e-05]]) array([[0.00855206]])\n",
            "  array([[1.70649289]]) array([[1.84286329]]) array([[5.75312363]])\n",
            "  array([[1.27694852]]) array([[1.00529634]]) array([[1.37723331]])\n",
            "  array([[2.17622304]]) array([[1.74508204]]) array([[1.9651844]])\n",
            "  array([[4.0552575]]) array([[0.76123959]])]]\n"
          ]
        }
      ]
    },
    {
      "cell_type": "code",
      "source": [
        "if len(X_valid) < 2:\n",
        "    print(f\"Warning: Too few valid data samples: {len(X_valid)}. Feature extraction or label assignment might need adjustment.\")\n",
        "else:\n",
        "    print(\"Proceeding with train-test split...\")\n"
      ],
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/"
        },
        "id": "DWS-Yj9PIySz",
        "outputId": "3729d9ec-3ab2-4e89-edc2-3bf3d9949885"
      },
      "execution_count": null,
      "outputs": [
        {
          "output_type": "stream",
          "name": "stdout",
          "text": [
            "Warning: Too few valid data samples: 1. Feature extraction or label assignment might need adjustment.\n"
          ]
        }
      ]
    },
    {
      "cell_type": "code",
      "source": [
        "print(\"Raw features data:\")\n",
        "print(features.head())  # Display the first few rows to understand its structure\n",
        "\n",
        "# Check the total number of features\n",
        "print(\"Total features extracted:\", features.shape[0])\n"
      ],
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/"
        },
        "id": "8RQsNpMhI2MC",
        "outputId": "704e6bed-53b7-49b6-af2b-d2d628f5235a"
      },
      "execution_count": null,
      "outputs": [
        {
          "output_type": "stream",
          "name": "stdout",
          "text": [
            "Raw features data:\n",
            "  ECG_Rate_Mean              HRV_MeanNN                HRV_SDNN  \\\n",
            "0     75.523892  [[286.06299559471364]]  [[13.575539789537926]]   \n",
            "\n",
            "              HRV_SDANN1              HRV_SDNNI1             HRV_SDANN2  \\\n",
            "0  [[6.345291267570103]]  [[11.977767589360822]]  [[5.476710620222688]]   \n",
            "\n",
            "               HRV_SDNNI2 HRV_SDANN5 HRV_SDNNI5               HRV_RMSSD  ...  \\\n",
            "0  [[12.331177679550024]]    [[nan]]    [[nan]]  [[11.546502831304318]]  ...   \n",
            "\n",
            "               HRV_SampEn              HRV_ShanEn             HRV_FuzzyEn  \\\n",
            "0  [[1.8428632935423488]]  [[5.7531236281893845]]  [[1.2769485174569633]]   \n",
            "\n",
            "                HRV_MSEn               HRV_CMSEn             HRV_RCMSEn  \\\n",
            "0  [[1.005296338562641]]  [[1.3772333096023532]]  [[2.176223043173414]]   \n",
            "\n",
            "                   HRV_CD                 HRV_HFD                HRV_KFD  \\\n",
            "0  [[1.7450820355967216]]  [[1.9651844018468048]]  [[4.055257503512329]]   \n",
            "\n",
            "                  HRV_LZC  \n",
            "0  [[0.7612395904130542]]  \n",
            "\n",
            "[1 rows x 92 columns]\n",
            "Total features extracted: 1\n"
          ]
        }
      ]
    },
    {
      "cell_type": "code",
      "source": [
        "# Try with dummy data for debugging (replace this with actual extracted features later)\n",
        "X_valid_dummy = np.random.rand(100, 5)  # 100 samples, 5 features\n",
        "y_valid_dummy = np.random.randint(0, 2, size=100)  # Random labels (0 or 1)\n",
        "\n",
        "# Now try splitting this dummy data\n",
        "X_train, X_test, y_train, y_test = train_test_split(X_valid_dummy, y_valid_dummy, test_size=0.3, random_state=42)\n",
        "print(f\"Training samples: {X_train.shape[0]}, Test samples: {X_test.shape[0]}\")\n"
      ],
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/"
        },
        "id": "cJWbxa_LI4Xq",
        "outputId": "b032edfd-1f22-42e2-98e0-049f35007930"
      },
      "execution_count": null,
      "outputs": [
        {
          "output_type": "stream",
          "name": "stdout",
          "text": [
            "Training samples: 70, Test samples: 30\n"
          ]
        }
      ]
    },
    {
      "cell_type": "code",
      "source": [
        "from sklearn.ensemble import RandomForestClassifier\n",
        "\n",
        "# Initialize the Random Forest Classifier\n",
        "clf = RandomForestClassifier(n_estimators=100, random_state=42)\n",
        "\n",
        "# Train the model using the training data\n",
        "clf.fit(X_train, y_train)\n",
        "\n",
        "# Make predictions on the test set\n",
        "y_pred = clf.predict(X_test)\n",
        "\n",
        "# Print the predictions\n",
        "print(\"Predicted labels:\", y_pred)\n"
      ],
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/"
        },
        "id": "0B3rLLEaI619",
        "outputId": "c45649f3-f1f7-4ad2-9e1a-63dd0a3404e1"
      },
      "execution_count": null,
      "outputs": [
        {
          "output_type": "stream",
          "name": "stdout",
          "text": [
            "Predicted labels: [0 0 0 0 0 1 1 0 1 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 1 1 1]\n"
          ]
        }
      ]
    },
    {
      "cell_type": "code",
      "source": [
        "from sklearn.metrics import confusion_matrix, accuracy_score, f1_score\n",
        "\n",
        "# Accuracy\n",
        "accuracy = accuracy_score(y_test, y_pred)\n",
        "print(f\"Accuracy: {accuracy * 100:.2f}%\")\n",
        "\n",
        "# Confusion Matrix\n",
        "conf_matrix = confusion_matrix(y_test, y_pred)\n",
        "print(\"Confusion Matrix:\")\n",
        "print(conf_matrix)\n",
        "\n",
        "# F1-Score\n",
        "f1 = f1_score(y_test, y_pred)\n",
        "print(f\"F1-Score: {f1:.2f}\")\n"
      ],
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/"
        },
        "id": "Yu9LAfq-JHYC",
        "outputId": "4694368b-0703-4997-f0f9-0ea64729570a"
      },
      "execution_count": null,
      "outputs": [
        {
          "output_type": "stream",
          "name": "stdout",
          "text": [
            "Accuracy: 43.33%\n",
            "Confusion Matrix:\n",
            "[[10  5]\n",
            " [12  3]]\n",
            "F1-Score: 0.26\n"
          ]
        }
      ]
    },
    {
      "cell_type": "code",
      "source": [
        "import matplotlib.pyplot as plt\n",
        "import seaborn as sns\n",
        "\n",
        "# Plot confusion matrix\n",
        "sns.heatmap(conf_matrix, annot=True, fmt=\"d\", cmap=\"Blues\", xticklabels=[\"Normal\", \"Arrhythmia\"], yticklabels=[\"Normal\", \"Arrhythmia\"])\n",
        "plt.xlabel(\"Predicted\")\n",
        "plt.ylabel(\"Actual\")\n",
        "plt.title(\"Confusion Matrix\")\n",
        "plt.show()\n"
      ],
      "metadata": {
        "id": "3lMyTThcJJyu",
        "outputId": "5196d43a-baa1-46fb-be5c-e497dc3de115",
        "colab": {
          "base_uri": "https://localhost:8080/",
          "height": 472
        }
      },
      "execution_count": null,
      "outputs": [
        {
          "output_type": "display_data",
          "data": {
            "text/plain": [
              "<Figure size 640x480 with 2 Axes>"
            ],
            "image/png": "iVBORw0KGgoAAAANSUhEUgAAAhIAAAHHCAYAAADqJrG+AAAAOnRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjEwLjAsIGh0dHBzOi8vbWF0cGxvdGxpYi5vcmcvlHJYcgAAAAlwSFlzAAAPYQAAD2EBqD+naQAARChJREFUeJzt3X18zvX////7sbHDzDZzMrZic5bzkzl5l5MacpIkUolOzFnpxFuIpO8bM+8a3pGoUC20kAp7oySneSuVkxaplrNQyEkYw4Ht9fujn+PTYZPt8HrtdTi6Xbu8LpeO5+t1vJ6P1y6TR4/nycthGIYhAAAALwTYHQAAALh+kUgAAACvkUgAAACvkUgAAACvkUgAAACvkUgAAACvkUgAAACvkUgAAACvkUgAAACvkUgAFtqxY4fatWun8PBwORwOpaWlmXr/n3/+WQ6HQ7NmzTL1vtezli1bqmXLlnaHAfxtkEjA7+3atUv9+/dX5cqVVaxYMYWFhal58+Z65ZVXdPbsWUv7TkhI0LZt2/TCCy8oNTVVjRs3trS/wtSrVy85HA6FhYXl+XPcsWOHHA6HHA6HXnrppQLf/8CBA0pMTFR6eroJ0QKwShG7AwCs9NFHH+n++++X0+lUz549VadOHZ0/f17r16/XsGHDtH37dr3xxhuW9H327Flt2LBB/+///T8NGDDAkj5iYmJ09uxZFS1a1JL7X02RIkV05swZLVmyRN26dfM4N2fOHBUrVkznzp3z6t4HDhzQmDFjFBsbqwYNGuT7e59++qlX/QHwDokE/NaePXvUvXt3xcTEaPXq1YqKinKfe+qpp7Rz50599NFHlvV/5MgRSVLJkiUt68PhcKhYsWKW3f9qnE6nmjdvrnnz5uVKJObOnauOHTtqwYIFhRLLmTNnVLx4cQUFBRVKfwD+wNAG/NaECRN0+vRppaSkeCQRl1StWlVPP/20+/PFixc1duxYValSRU6nU7GxsXr++eflcrk8vhcbG6u77rpL69ev1z/+8Q8VK1ZMlStX1jvvvOO+JjExUTExMZKkYcOGyeFwKDY2VtIfQwKX/v3PEhMT5XA4PNpWrFihFi1aqGTJkipRooSqV6+u559/3n3+SnMkVq9erVtvvVUhISEqWbKkOnfurB9++CHP/nbu3KlevXqpZMmSCg8PV+/evXXmzJkr/2Av8+CDD2rZsmU6ceKEu23jxo3asWOHHnzwwVzX//777xo6dKjq1q2rEiVKKCwsTB06dNC3337rvmbt2rVq0qSJJKl3797uIZJLz9myZUvVqVNHmzdv1m233abixYu7fy6Xz5FISEhQsWLFcj1/+/btFRERoQMHDuT7WQHkRiIBv7VkyRJVrlxZzZo1y9f1/fr106hRo9SwYUO9/PLLio+PV3Jysrp3757r2p07d+q+++5T27ZtNXHiREVERKhXr17avn27JKlr1656+eWXJUk9evRQamqqJk+eXKD4t2/frrvuuksul0tJSUmaOHGi7r77bn3++ed/+b2VK1eqffv2Onz4sBITEzVkyBB98cUXat68uX7++edc13fr1k2nTp1ScnKyunXrplmzZmnMmDH5jrNr165yOBxauHChu23u3LmqUaOGGjZsmOv63bt3Ky0tTXfddZcmTZqkYcOGadu2bYqPj3f/pV6zZk0lJSVJkh577DGlpqYqNTVVt912m/s+x44dU4cOHdSgQQNNnjxZrVq1yjO+V155RWXLllVCQoKys7MlSTNmzNCnn36qqVOnKjo6Ot/PCiAPBuCHTp48aUgyOnfunK/r09PTDUlGv379PNqHDh1qSDJWr17tbouJiTEkGevWrXO3HT582HA6ncYzzzzjbtuzZ48hyfjPf/7jcc+EhAQjJiYmVwyjR482/vxH8uWXXzYkGUeOHLli3Jf6mDlzprutQYMGRmRkpHHs2DF327fffmsEBAQYPXv2zNVfnz59PO55zz33GKVLl75in39+jpCQEMMwDOO+++4zbr/9dsMwDCM7O9soX768MWbMmDx/BufOnTOys7NzPYfT6TSSkpLcbRs3bsz1bJfEx8cbkozp06fneS4+Pt6jbfny5YYk49///rexe/duo0SJEkaXLl2u+owAro6KBPxSZmamJCk0NDRf13/88ceSpCFDhni0P/PMM5KUay5FrVq1dOutt7o/ly1bVtWrV9fu3bu9jvlyl+ZW/Pe//1VOTk6+vnPw4EGlp6erV69eKlWqlLu9Xr16atu2rfs5/+zxxx/3+Hzrrbfq2LFj7p9hfjz44INau3atDh06pNWrV+vQoUN5DmtIf8yrCAj44z892dnZOnbsmHvYZsuWLfnu0+l0qnfv3vm6tl27durfv7+SkpLUtWtXFStWTDNmzMh3XwCujEQCfiks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\n"
          },
          "metadata": {}
        }
      ]
    }
  ]
}